package com.zh.business.base.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

@ApiModel(value = "SysUserBO",description = "用户业务对象")
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SysUserBO implements Serializable {

    private static final long serialVersionUID = 8166139428482083325L;

    /**
     *
     */
    @ApiModelProperty(value = "用户id")
    private Integer id;

    /**
     * 用户姓名
     */
    @ApiModelProperty(value = "用户姓名")
    private String name;

    /**
     * 部门id
     */
    @ApiModelProperty(value = "部门id")
    private Integer officeId;

    /**
     * 部门code
     */
    @ApiModelProperty(value = "部门code")
    private String officeCode;

    /**
     * 分公司id
     */
    @ApiModelProperty(value = "分公司id")
    private Integer companyId;

    /**
     * 部门code
     */
    @ApiModelProperty(value = "部门code")
    private String companyCode;



    /**
     * 性别 0男 1女
     */
    @ApiModelProperty(value = "性别 0男 1女")
    private Integer sex;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String email;

    /**
     *
     */
    @ApiModelProperty(value = "")
    private String mobile;

    /**
     *
     */
    @ApiModelProperty(value = "")
    private String idcard;

    /**
     * 民族
     */
    @ApiModelProperty(value = "民族")
    private Integer nation;

    /**
     * 政治面貌
     */
    @ApiModelProperty(value = "政治面貌")
    private Integer politicalStatus;

    /**
     * 出生年月
     */
    @ApiModelProperty(value = "出生年月")
    private Date birthdate;

    /**
     * 毕业院校
     */
    @ApiModelProperty(value = "毕业院校")
    private String graduationSchool;

    /**
     * 所学专业
     */
    @ApiModelProperty(value = "所学专业")
    private String profession;

    /**
     * 学历
     */
    @ApiModelProperty(value = "学历")
    private String educational;

    /**
     * 学位
     */
    @ApiModelProperty(value = "学位")
    private String degree;

    /**
     * 毕业日期
     */
    @ApiModelProperty(value = "毕业日期")
    private Date graduationDate;

    /**
     * 参加工作时间
     */
    @ApiModelProperty(value = "参加工作时间")
    private Date workTime;

    /**
     * 职称
     */
    @ApiModelProperty(value = "职称")
    private String jobTitle;

    /**
     * 职称获取时间
     */
    @ApiModelProperty(value = "职称获取时间")
    private Date jobTitleDate;

    /**
     * 职称认定单位
     */
    @ApiModelProperty(value = "职称认定单位")
    private String jobTitleCompan;

    /**
     *
     */
    @JsonIgnore
    @ApiModelProperty(value = "")
    private String password;

    /**
     *
     */
    @JsonIgnore
    @ApiModelProperty(value = "")
    private String salt;

    /**
     * 1在职 2离职
     */
    @ApiModelProperty(value = "1在职 2离职")
    private Integer personnelStatus;

    /**
     *
     */
    @ApiModelProperty(value = "")
    private Integer createUser;

    /**
     *
     */
    @ApiModelProperty(value = "")
    private Date createTime;

    /**
     *
     */
    @ApiModelProperty(value = "")
    private Integer updateUser;

    /**
     *
     */
    @ApiModelProperty(value = "")
    private Date updateTime;

    /**
     * 是否是超管标识，0标识否，1标识是
     */
    @ApiModelProperty(value = "是否是超管标识，0标识否，1标识是")
    private Integer superFlag;

    /**
     * 账号状态：0标识禁用，1标识启用
     */
    @ApiModelProperty(value = "账号状态：0标识禁用，1标识启用")
    private Integer enabledStatus;

    private String token;

    @JsonIgnore
    private Set<String> roleFlagStrSet;

    @JsonIgnore
    private Set<String> permissionStrSet;

    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门名称")
    private String officeName;
}
